/**
 * 全局导航工具
 * 提供智能返回、页面跳转等导航功能
 */

/**
 * 智能返回功能
 * - 如果有上一页（导航栈长度 > 1），使用 navigateBack 返回
 * - 如果没有上一页（刷新后导航栈被清空），跳转到默认页面
 * 
 * @param {String} fallbackUrl - 没有上一页时的默认跳转地址，默认为首页
 * @param {Number} delta - 返回的层数，默认为1
 */
export const smartBack = (fallbackUrl = '/pages/home/home', delta = 1) => {
    const pages = getCurrentPages()

    if (pages.length > delta) {
        // 有足够的上一页，使用返回
        uni.navigateBack({
            delta: delta
        })
    } else {
        // 没有上一页（刷新后），跳转到默认页面
        uni.reLaunch({
            url: fallbackUrl
        })
    }
}

/**
 * 返回到个人中心
 * 专门用于账号安全相关页面（修改密码、修改邮箱等）
 */
export const backToProfile = () => {
    smartBack('/pages/profile/profile')
}

/**
 * 返回到首页
 */
export const backToHome = () => {
    smartBack('/pages/home/home')
}

/**
 * 返回到订单列表
 */
export const backToOrders = () => {
    smartBack('/pages/orders/orders')
}

/**
 * 返回到商家中心
 */
export const backToMerchantHome = () => {
    smartBack('/pages/merchant/home/home')
}

/**
 * 检查是否有上一页
 * @returns {Boolean}
 */
export const hasPreviousPage = () => {
    const pages = getCurrentPages()
    return pages.length > 1
}

/**
 * 获取当前页面栈长度
 * @returns {Number}
 */
export const getPageStackLength = () => {
    const pages = getCurrentPages()
    return pages.length
}

/**
 * 获取上一页的路由
 * @returns {String|null}
 */
export const getPreviousPageRoute = () => {
    const pages = getCurrentPages()
    if (pages.length > 1) {
        const previousPage = pages[pages.length - 2]
        return previousPage.route
    }
    return null
}

export default {
    smartBack,
    backToProfile,
    backToHome,
    backToOrders,
    backToMerchantHome,
    hasPreviousPage,
    getPageStackLength,
    getPreviousPageRoute
}





